package com.xxx.kjds.entity;

import java.util.ArrayList;
import java.util.List;

public class MenuExample {
    protected String orderByClause;
    protected boolean distinct;
    protected List<MenuExample.Criteria> oredCriteria = new ArrayList();

    public MenuExample() {
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return this.orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return this.distinct;
    }

    public List<MenuExample.Criteria> getOredCriteria() {
        return this.oredCriteria;
    }

    public void or(MenuExample.Criteria criteria) {
        this.oredCriteria.add(criteria);
    }

    public MenuExample.Criteria or() {
        MenuExample.Criteria criteria = this.createCriteriaInternal();
        this.oredCriteria.add(criteria);
        return criteria;
    }

    public MenuExample.Criteria createCriteria() {
        MenuExample.Criteria criteria = this.createCriteriaInternal();
        if (this.oredCriteria.size() == 0) {
            this.oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected MenuExample.Criteria createCriteriaInternal() {
        MenuExample.Criteria criteria = new MenuExample.Criteria();
        return criteria;
    }

    public void clear() {
        this.oredCriteria.clear();
        this.orderByClause = null;
        this.distinct = false;
    }

    public static class Criterion {
        private String condition;
        private Object value;
        private Object secondValue;
        private boolean noValue;
        private boolean singleValue;
        private boolean betweenValue;
        private boolean listValue;
        private String typeHandler;

        public String getCondition() {
            return this.condition;
        }

        public Object getValue() {
            return this.value;
        }

        public Object getSecondValue() {
            return this.secondValue;
        }

        public boolean isNoValue() {
            return this.noValue;
        }

        public boolean isSingleValue() {
            return this.singleValue;
        }

        public boolean isBetweenValue() {
            return this.betweenValue;
        }

        public boolean isListValue() {
            return this.listValue;
        }

        public String getTypeHandler() {
            return this.typeHandler;
        }

        protected Criterion(String condition) {
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }

        }

        protected Criterion(String condition, Object value) {
            this(condition, value, (String)null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, (String)null);
        }
    }

    public static class Criteria extends MenuExample.GeneratedCriteria {
        protected Criteria() {
        }
    }

    protected abstract static class GeneratedCriteria {
        protected List<MenuExample.Criterion> criteria = new ArrayList();

        protected GeneratedCriteria() {
        }

        public boolean isValid() {
            return this.criteria.size() > 0;
        }

        public List<MenuExample.Criterion> getAllCriteria() {
            return this.criteria;
        }

        public List<MenuExample.Criterion> getCriteria() {
            return this.criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            } else {
                this.criteria.add(new MenuExample.Criterion(condition));
            }
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            } else {
                this.criteria.add(new MenuExample.Criterion(condition, value));
            }
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 != null && value2 != null) {
                this.criteria.add(new MenuExample.Criterion(condition, value1, value2));
            } else {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
        }

        public MenuExample.Criteria andIdIsNull() {
            this.addCriterion("id is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdIsNotNull() {
            this.addCriterion("id is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdEqualTo(Integer value) {
            this.addCriterion("id =", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdNotEqualTo(Integer value) {
            this.addCriterion("id <>", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdGreaterThan(Integer value) {
            this.addCriterion("id >", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdGreaterThanOrEqualTo(Integer value) {
            this.addCriterion("id >=", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdLessThan(Integer value) {
            this.addCriterion("id <", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdLessThanOrEqualTo(Integer value) {
            this.addCriterion("id <=", value, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdIn(List<Integer> values) {
            this.addCriterion("id in", values, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdNotIn(List<Integer> values) {
            this.addCriterion("id not in", values, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdBetween(Integer value1, Integer value2) {
            this.addCriterion("id between", value1, value2, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andIdNotBetween(Integer value1, Integer value2) {
            this.addCriterion("id not between", value1, value2, "id");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameIsNull() {
            this.addCriterion("name is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameIsNotNull() {
            this.addCriterion("name is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameEqualTo(String value) {
            this.addCriterion("name =", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameNotEqualTo(String value) {
            this.addCriterion("name <>", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameGreaterThan(String value) {
            this.addCriterion("name >", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameGreaterThanOrEqualTo(String value) {
            this.addCriterion("name >=", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameLessThan(String value) {
            this.addCriterion("name <", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameLessThanOrEqualTo(String value) {
            this.addCriterion("name <=", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameLike(String value) {
            this.addCriterion("name like", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameNotLike(String value) {
            this.addCriterion("name not like", value, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameIn(List<String> values) {
            this.addCriterion("name in", values, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameNotIn(List<String> values) {
            this.addCriterion("name not in", values, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameBetween(String value1, String value2) {
            this.addCriterion("name between", value1, value2, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andNameNotBetween(String value1, String value2) {
            this.addCriterion("name not between", value1, value2, "name");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdIsNull() {
            this.addCriterion("menu_id is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdIsNotNull() {
            this.addCriterion("menu_id is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdEqualTo(Integer value) {
            this.addCriterion("menu_id =", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdNotEqualTo(Integer value) {
            this.addCriterion("menu_id <>", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdGreaterThan(Integer value) {
            this.addCriterion("menu_id >", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdGreaterThanOrEqualTo(Integer value) {
            this.addCriterion("menu_id >=", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdLessThan(Integer value) {
            this.addCriterion("menu_id <", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdLessThanOrEqualTo(Integer value) {
            this.addCriterion("menu_id <=", value, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdIn(List<Integer> values) {
            this.addCriterion("menu_id in", values, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdNotIn(List<Integer> values) {
            this.addCriterion("menu_id not in", values, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdBetween(Integer value1, Integer value2) {
            this.addCriterion("menu_id between", value1, value2, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andMenuIdNotBetween(Integer value1, Integer value2) {
            this.addCriterion("menu_id not between", value1, value2, "menuId");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelIsNull() {
            this.addCriterion("level is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelIsNotNull() {
            this.addCriterion("level is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelEqualTo(Integer value) {
            this.addCriterion("level =", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelNotEqualTo(Integer value) {
            this.addCriterion("level <>", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelGreaterThan(Integer value) {
            this.addCriterion("level >", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelGreaterThanOrEqualTo(Integer value) {
            this.addCriterion("level >=", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelLessThan(Integer value) {
            this.addCriterion("level <", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelLessThanOrEqualTo(Integer value) {
            this.addCriterion("level <=", value, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelIn(List<Integer> values) {
            this.addCriterion("level in", values, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelNotIn(List<Integer> values) {
            this.addCriterion("level not in", values, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelBetween(Integer value1, Integer value2) {
            this.addCriterion("level between", value1, value2, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andLevelNotBetween(Integer value1, Integer value2) {
            this.addCriterion("level not between", value1, value2, "level");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusIsNull() {
            this.addCriterion("status is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusIsNotNull() {
            this.addCriterion("status is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusEqualTo(Integer value) {
            this.addCriterion("status =", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusNotEqualTo(Integer value) {
            this.addCriterion("status <>", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusGreaterThan(Integer value) {
            this.addCriterion("status >", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            this.addCriterion("status >=", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusLessThan(Integer value) {
            this.addCriterion("status <", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusLessThanOrEqualTo(Integer value) {
            this.addCriterion("status <=", value, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusIn(List<Integer> values) {
            this.addCriterion("status in", values, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusNotIn(List<Integer> values) {
            this.addCriterion("status not in", values, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusBetween(Integer value1, Integer value2) {
            this.addCriterion("status between", value1, value2, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andStatusNotBetween(Integer value1, Integer value2) {
            this.addCriterion("status not between", value1, value2, "status");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlIsNull() {
            this.addCriterion("url is null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlIsNotNull() {
            this.addCriterion("url is not null");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlEqualTo(String value) {
            this.addCriterion("url =", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlNotEqualTo(String value) {
            this.addCriterion("url <>", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlGreaterThan(String value) {
            this.addCriterion("url >", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlGreaterThanOrEqualTo(String value) {
            this.addCriterion("url >=", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlLessThan(String value) {
            this.addCriterion("url <", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlLessThanOrEqualTo(String value) {
            this.addCriterion("url <=", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlLike(String value) {
            this.addCriterion("url like", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlNotLike(String value) {
            this.addCriterion("url not like", value, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlIn(List<String> values) {
            this.addCriterion("url in", values, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlNotIn(List<String> values) {
            this.addCriterion("url not in", values, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlBetween(String value1, String value2) {
            this.addCriterion("url between", value1, value2, "url");
            return (MenuExample.Criteria)this;
        }

        public MenuExample.Criteria andUrlNotBetween(String value1, String value2) {
            this.addCriterion("url not between", value1, value2, "url");
            return (MenuExample.Criteria)this;
        }
    }
}
